Method and apparatus for voice-controlled graphical user interface pointing device

ABSTRACT

A pointing device is provided for use in computing devices comprising a printed circuit board, a tracking device adapted to generate a tracking signal in response to a user vocal input and relay the tracking signal to the printed circuit board, and a selection device adapted to generate a selection signal in response to a user manipulation and relay the selection signal to the printed circuit board.

FIELD OF THE INVENTION

The present invention generally relates to the field of computers, and more particularly relates to a pointing device for a computer.

BACKGROUND OF THE INVENTION

A pointing device for use with a computer is well known. Existing pointing devices, such as a mouse, combine tracking and selecting functions into one device. Tracking involves physically moving the mouse to control the motion of an on-screen pointer or other icon. Physical movement of the mouse is typically accomplished by moving the wrist and palm of the hand gripping the mouse. Once tracking has moved the pointer, an operation may be selected for execution by the computer, typically by depressing a button on the mouse.

A computer user relies significantly on his or her hand (particularly on the wrist, palm and fingers) to use a mouse for executing computer operations. Unfortunately, the use of a computer mouse over extended periods of time has been shown to be a leading cause of many different types of repetitive motion injuries (RMI) to body parts including the wrists, fingers, shoulders, and elbows, e.g., Carpal Tunnel Syndrome (CTS). Individuals in many fields of work rely on computers in their daily work and are thus forced to use a mouse quite extensively. Early injuries to children may even be incurable, rendering the injured child permanently disabled.

One common solution for relieving strain on a computer user's hands and wrists is to enable the computer system to be at least partially operated by the user's voice commands. For example, commercially available voice recognition software allows a user to perform word processing operations by dictation rather than by typing. However, a significant drawback to conventional voice operated software applications is that they are susceptible to receiving background noise as well as the user's voice commands, distorting the audible input into the system. This leads to inaccuracy in the performance of the user's commands, and the mistakes can be very time consuming to fix.

SUMMARY OF THE INVENTION

The present invention overcomes the above-described limitations by providing a pointing device for use in computing devices comprising a printed circuit board, a tracking device adapted to generate a tracking signal in response to a user vocal input and relay the tracking signal to the printed circuit board, and a selection device adapted to generate a selection signal in response to a user manipulation and relay the selection signal to the printed circuit board.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited embodiments of the invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.

FIG. 1 depicts a diagram graphically illustrating components of a pointing device system according to one embodiment of the invention;

FIG. 2 depicts a flow diagram of a method for acquiring user input via a pointing device according to one embodiment of the invention;

FIG. 3 depicts a flow diagram of a method of indexing user input according to one embodiment of the invention;

FIG. 4A depicts a hash table illustrating an indexing database according to one embodiment of the invention;

FIG. 4B depicts a flow diagram of a method for updating a hash table such as that illustrated in FIG. 4A;

FIG. 5 depicts a flow diagram of a processing sequence by which computer applications are launched according to one embodiment of the invention; and

FIG. 6 depicts a graphical representation of a pipeline sequence for acquiring and indexing input and launching applications according to one embodiment of the invention;

To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.

DETAILED DESCRIPTION

The present invention provides an improved pointing device for assisting computer users having poor or limited hand motor skill control or eyesight and for reducing the occurrence of repetitive motion injuries in physically unimpaired users. The present invention achieves this aim allows a user to manipulate an on-screen pointer and launch system applications by means of vocal commands. Thus both tracking and selecting can be achieved with little or no need to engage other parts of the body such as the hands and wrists. Furthermore, embodiments of the invention provide an improved system for acquiring vocal/audible input from a computer user, so that erroneous inputs such as background noise and/or vocal irregularities of the user are filtered out to optimize system accuracy.

The basic operation of one embodiment of a pointing device system according the present invention is illustrated in FIG. 2. Operation of the pointing device system 200 is accomplished at least in part by the vocal commands of a computer user. The pointing device system 200 includes at least one vocal cord movement (VCM) sensor 202, a voice box converter (VBC) 204, and a keyword database 206. The pointing device system 200 generates an output to the mouse PCB 208, which in turn indicates pointer or icon movements to the processor 210, which executes the indicated commands and movements. Once the pointer or icon has been moved to the desired on-screen location, the user generates a signal to launch (or “select”) the chosen application. The system 200 optionally generates an audible output to indicate the new pointer position or open application, so that, for example, a blind user may use the pointing device system 200 effectively.

FIG. 3 depicts a flow diagram of one embodiment of a method 300 for acquiring user input 304 via a pointing device according to one embodiment of the invention. At least one VCM sensor 202 is positioned near a user's voice box (larynx). The user starts acquisition of vocal command data by activating a start delimiter 302. Activation of the start delimiter 302 starts acquisition/recording of vocal cord movements. Next, the user provides audible input to the VCM sensor 202 by speaking into a converter system the keyword(s) corresponding to the movement or application the user wishes to execute. As the user speaks, the sensor 202 discerns movement of the user's vocal cords and records these movements. To stop the acquisition of vocal input 304 by the system, the user activates a stop delimiter 306 that causes the VCM sensor 202 to cease recording vocal cord movements. Optionally, the start and stop delimiters 302, 306 may comprise one delimiter device that is activated once to commence and once more to cease recording. The activation of a delimiter 302, 306 before and after speech filters extraneous noise (such as background noise) that may distort the vocal input 304. The recorded vocal cord movements are then sent as input to the VBC 204.

One VBC that may be advantageously adapted for use with the present invention is commercially available from Lucent Technologies Inc. of Murray Hill, N.J. The VBC 204 converts the input from the VCM sensor(s) 202 into text output, and sends this text output to the keyword database 206 for further processing and indexing. The VBC output is also used by software to train a personal user dictionary for alphabets, words and mouse commands, so that vocal input from a particular user is easily and accurately converted to output that the processor 210 can recognize and use to execute commands. Such software is well known in the art.

The keyword database 206 is coupled to the VBC 204 and further includes a desktop icon database 450 and a menu search tree 460 (see FIG. 4). The keyword database 206 indexes text output from the VBC 204 to determine the position of an on-screen icon or operation corresponding to the application that matches the keyword (user vocal input) processed by the VCM sensor/VBC operations.

FIG. 4 depicts a flow diagram of a method 400 of indexing user input according to one embodiment of the invention. In general, a spoken keyword corresponds either to a desktop icon or to a menu. In steps 402-408, the keyword database 206 asks whether the spoken keyword corresponds to a desktop icon (402), a submenu (404) or the start menu (406), or whether the vocal input does not match any keyword at all (408). Once the keyword has been categorized, the appropriate database 450 or search tree 460 is searched in steps 410-414 for an exact match to an icon or menu.

FIG. 5A depicts a hash table 500 illustrating an indexing database according to one embodiment of the invention. Referring simultaneously to FIGS. 4 and 5A, the desktop icon database 450 is a hash table 500 that maps icon names or keywords 502 to specific positions (X, Y) 504 within the desktop area. For example, if the keyword 502 corresponds to a desktop icon, a search in the desktop icon database 450 will determine the actual position 504 of the indicated icon in the desktop area, and the on-screen pointer will be moved to that position on the desktop screen (step 416 in FIG. 4). The generation of the process of the hash table 500 is illustrated in FIG. 5B and will be discussed in further detail herein.

The menu search tree 460 operates in a manner similar to the desktop icon database 450. However, the menu search tree 460 maps names and keywords of submenus within the start menu (for example, the Accessories or Multimedia submenus in Windows), rather than names and locations of desktop icons. The on-screen pointer is then positioned on the appropriate submenu (step 418 in FIG. 4). If the user does not know the keyword for the desired submenu, the “Start” keyword will retrieve the root node of the menu search tree 460 (step 414) and position the pointer over the Start menu (step 420), which may be searched for the appropriate submenu.

In the event that the user input does not match a keyword in either the desktop icon database 450 or the menu search tree 460, a signal is generated in step 408 to indicate to the user that the input is not valid. In one embodiment, the signal is an audible signal, such as a beep.

Once the pointer has been moved to the desired on-screen location, the user generates a signal to launch the chosen application. In one embodiment, the launch signal is indicated by depressing a button on a conventional mouse. For example, depression of the left mouse button on a conventional two- or three-button mouse optionally indicates selection of an application. In further embodiments, alternate means of generating selection input to the mouse PCB may be used.

FIG. 6 depicts a flow diagram of a processing sequence 600 by which a processor 210 launches computer applications according to one embodiment of the invention. The processing sequence 600 operates on a series of timed intervals during which the user must activate a launch signal or allow a default operation to be executed. For example, once the on-screen pointer has been moved to an indicated location in step 602, (based on the database keyword matches described herein), a first timed interval begins to run. If the user wishes to launch the application on which the pointer is positioned, he signals so, for example by depressing a mouse button as described, before the first timeout in step 604. A selection signal before the first timeout prompts the processor 210 to launch the chosen application (step 650). If no signal is received from the user, the processor 210 determines in step 606 whether the pointer is positioned on a desktop icon (606 a) or a submenu (606 b). If the pointer is positioned on a submenu (606 b), that application is launched (650). If the pointer is positioned on a desktop icon (606 a), the processor 210 moves the pointer, in step 608, to a text area associated with the icon (located, for example, below the icon), and a second timed interval begins to run. If the processor 210 receives a signal from the user before the second timeout (step 610), the user is enabled to update or alter the text in the text area in step 612, and a database entry for the icon is updated accordingly in step 614. The process 550 by which the icon database hash table 500 is updated in illustrated in FIG. 5B. If no signal is received from the user, the application is launched (650). In this manner, if no signal or signals are received from the user at any point in the processing sequence 600, the default operations of the processing sequence 600 are programmed to execute probable the intentions of the user in pointing to the indicated icon or submenu.

FIG. 7 depicts a graphical representation of a pipeline sequence for acquiring and indexing input and launching applications according to one embodiment of the invention. The three main stages 300, 400, 600 in the pointing device system processing sequence 200 are performed concurrently in a pipeline system. That is, the stages 300, 400, 600 overlap so that after three cycles n₀, n_(i), n_(i+1) of vocal command acquisition 300 (FIG. 3), database indexing 400 (FIG. 4), and application launch 600 (FIG. 6), the stages 300, 400, 600 operate and process input concurrently at time t. Therefore, if a subsequent vocal command is acquired 300 immediately after a previous acquired command has been processed (i.e., indexed 400), the execution speed of the system 200 is approximately three times faster than a conventional sequential processing system.

Once an application is launched 600, the pointer is repositioned within the launched application. The launched application may be any application capable of being operated by the computer, such as a word processing program, a video game or a web browser. In one embodiment, the launched application is a web browser such as Microsoft Internet Explorer.

One embodiment of a typical web browser includes such user-executable icons as hyperlinks, buttons and menus. The purposes and operations of such icons are well known in the art. The keyword database 450 stores keywords for all hyperlinks, buttons and menus in all active (launched) applications, as well as the respective positions (X, Y) of each hyperlink, button and menu within the application. In addition, the keyword database 450 stores keywords and positions for all similar executable icons in other applications (i.e., word processing programs, video games, etc.).

The method of tracking (positioning) and selecting (launching) with the pointer to launch a particular action within an application is substantially similar to the method illustrated in FIGS. 2-6 to launch the application. For example, if a user wishes to position the pointer on a particular hyperlink or button, he starts acquisition of vocal command data 300 by activating the start delimiter 302. Next, the user speaks into the converter system (i.e., VCM sensor 202) the keyword(s) corresponding to the hyperlink or button the user wishes to launch. To stop the acquisition of vocal input by the system, the user activates the stop delimiter 306. The acquired audible input is then converted into text form by the VBC 204, which launches the corresponding hyperlink or button by the method discussed with reference to FIG. 6.

If a user knows the keyword for a particular submenu (for example, the Save command within the File menu) he wishes to launch or explore, he can launch it by the same method hyperlinks and buttons are launched (i.e., speak the keyword—“Save”—in between activating the delimiters 302, 306). If the user does not know the keyword, he may speak the keyword for the whole menu (“File”). Exploration of the menu is then automatic; the pointer is positioned upon a submenu for brief interval of time (such as in step 604 of FIG. 6), during which the user may signal (for example, by clicking a button) to launch the submenu or take no action. Taking no action will cause the processor to position the pointer upon the next submenu and repeat the process of allowing a brief interval for user input.

Switching between active applications (multitasking) may also be accomplished by vocal command. In one embodiment, the keyword “Active” is used to distinguish between a launched application and a new (but as yet unlaunched) application. If multiple applications of the same type are already launched, the keyword prompts the processor 210 to move the on-screen pointer from one application to the next. The pointer remains on each application for a brief interval (again similar to step 604 in FIG. 6) to allow the user to signal acceptance of an application. If no signal is given, the pointer is moved to the next application upon timeout.

Thus the present invention represents a significant advancement in the field of computer usage and computer pointing device systems. A graphical user interface pointing device system is provided that substantially reduces the occurrence of repetitive motion injuries caused by conventional pointing devices. The system is suitable for use with standard desktop and laptop computers, as well as next-generation embedded computing devices like hand held devices and web browsing devices that operate through television sets. Furthermore, the inaccuracies associated with conventional voice-operated software are substantially reduced by the delimiting functions of the present invention, which filter background noise and vocal irregularities in the system input. Therefore, the present invention may be particularly well-suited for use by users who are deaf, ill, or have poor or limited hand motor skill control, as well as physically unimpaired users who may benefit from a hand-free pointing device system (such as those dictating in public places or while otherwise occupied).

While the foregoing is directed to embodiments of the invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow. 

1. A pointing device for use in computing devices comprising: a printed circuit board; a tracking device adapted to generate a tracking signal in response to a user vocal input and relay the tracking signal to the printed circuit board; and a selection device adapted to generate a selection signal in response to a user manipulation and relay the selection signal to the printed circuit board.
 2. The pointing device of claim 1, wherein the tracking device comprises: at least one sensor adapted to sense and record a user's vocal cord movements; and at least one delimiter adapted to filter extraneous audible input to the at least one sensor.
 3. The pointing device of claim 2, wherein the at least one delimiter is adapted to activate at least one of start or stop sensor recording.
 4. The pointing device of claim 2, wherein the tracking device further comprises: a voice box converter coupled to the at least one sensor and adapted to convert the vocal cord movements to a text output; and a keyword database coupled to the voice box converter and adapted to index the text output received from the voice box converter.
 5. The pointing device of claim 4, wherein the keyword database further comprises: a desktop icon database adapted to map desktop icon keywords to desktop screen positions; and a menu search tree adapted to map menu keywords to desktop screen positions.
 6. The pointing device of claim 5, wherein the desktop icon database comprises a hash table.
 7. The pointing device of claim 1, wherein the selection device is adapted to relay a default selection signal to the printed circuit board in the event that there is no selection signal generated by a user following the generation of a tracking signal.
 8. A pointing device for use in computing devices comprising: a printed circuit board; a tracking device adapted to generate a tracking signal in response to a user's vocal input and relay said signal to the printed circuit board; and a selection device adapted to generate a selection signal in response to a user manipulation and relay the selection signal to the printed circuit board, wherein the tracking device comprises: at least one sensor adapted to sense and record a user's vocal cord movements; at least one delimiter adapted to filter extraneous audible input to the at least one sensor; a voice box converter coupled to the at least one sensor and adapted to convert the vocal cord movements to a text output; and a keyword database coupled to the voice box converter and adapted to index the text output received from the voice box converter.
 9. A pointing device for use in computing devices comprising: a printed circuit board; means for converting a user's vocal input into a tracking signal and relaying the tracking signal to the printed circuit board; and means for generating a selection signal and relaying the selection signal to the printed circuit board.
 10. A computer system comprising: a processor; a printed circuit board adapted to send and receive pointer location and command information to and from the processor; a tracking device adapted to generate a tracking signal in response to a user's vocal input and relay said signal to the printed circuit board; and a selection device adapted to generate a selection signal in response to a user manipulation and relay the selection signal to the printed circuit board.
 11. Method for executing computer commands using a pointing device, comprising the steps of: acquiring a vocal input from a user; indexing the vocal input through a command database; launching a computer application indicated by the vocal input.
 12. The method of claim 11, further comprising the step of generating an audible output to alert the user to a new position of the on-screen pointer.
 13. The method of claim 11, wherein the steps of acquiring the vocal input, indexing the vocal input, and launching the application are performed in a continuous cycle for as long as the user provides vocal input.
 14. The method of claim 13, further comprising acquiring a second vocal input substantially concurrently with the commencement of indexing of a first vocal input.
 15. The method of claim 14, wherein the steps of acquiring a vocal input, indexing a vocal input, and launching an application are performed simultaneously after acquisition of a third vocal input to execute a third cycle.
 16. The method of claim 11, wherein the step of acquiring the vocal input comprises the steps of: activating a first delimiter to initiate vocal input acquisition; recording a user's vocal cord movements; and activating a second delimiter to cease vocal input recording.
 17. The method of claim 14, wherein the step of acquiring the vocal input further comprises converting the user's vocal cord movements to a text output.
 18. The method of claim 14, wherein the step of indexing the vocal input comprises comparing the acquired vocal input to at least one keyword stored in a database to identify a keyword that corresponds to the vocal input.
 19. The method of claim 18, wherein the step of comparing the acquired vocal input to the at least one keyword comprises determining whether the vocal input corresponds to a keyword for a desktop icon, a submenu or the start menu.
 20. The method of claim 14, wherein the step of launching the application comprises the steps of: moving an on-screen pointer to a desktop screen location indicated by the vocal input; activating an application selection signal before the expiration of at least one timed interval.
 21. The method of claim 20, wherein the failure of a user to activate the selection signal before the expiration of the at least one timed interval results in the activation of a default selection processing sequence.
 22. The method of claim 21, wherein the default selection processing sequence comprises the steps of: running a first timed interval; determining the location of the on-screen pointer if no selection signal is generated before the expiration of the first timed interval; and executing an action in response to the location of the on-screen pointer.
 23. The method of claim 22, further comprising the step of launching a corresponding application if the on-screen pointer is determined to be positioned on a submenu.
 24. The method of claim 22, further comprising the steps of: moving the on-screen pointer to a text area associated with a corresponding desktop icon if the pointer is determined to be positioned on a desktop icon; and running a second timed interval.
 25. The method of claim 24, further comprising the steps of launching an application corresponding to the desktop icon if a user does not activate a selection signal before expiration of the second timed interval.
 26. The method of claim 25, further comprising the steps of: enabling the user to alter the text area if a selection signal is activated before the expiration of the second timed interval; and updating a database entry for the desktop icon to include the user-made alterations. 